package com.example.demo;

/**
 * 爬楼梯
 * https://leetcode.cn/problems/climbing-stairs/?envType=study-plan-v2&envId=top-interview-150
 */
public class ClimbStairs {

    public int climbStairs(int n) {
        if (n <= 2) {
            return n;
        }

        int i1 = 1;
        int i2 = 2;

        //第3个台阶只能从第1或者2个台阶上来，到第3个台阶的走法 = 到第1个台阶的走法 + 第2个台阶的走法
        //第4个台阶只能从第2或者3个台阶上来，到第4个台阶的走法 = 到第2个台阶的走法 + 第3个台阶的走法
        for (int i = 3; i <= n; i++) {
            int temp = i1 + i2;
            i1 = i2;
            i2 = temp;
        }
        return i2;
    }
}
